
#ifndef _RibbonTitle_H_
#define _RibbonTitle_H_

#include "RibbonApi.hpp"

#include <QMenu>
#include <QWidget>
#include <QHBoxLayout>
#include <QLabel>
#include <QDockWidget>
#include <QToolBar>
#include <QMainWindow>
#include <QMouseEvent>
#include <QApplication>
#include <QDesktopWidget>
#include <QPropertyAnimation>
#include <QMenuBar>
#include <QToolButton>

namespace NSRibbon {

	class RibbonAfrolMenu;

	class RIBBONAPI RibbonTitle : public QWidget 
	{
		Q_OBJECT
	public:
		RibbonTitle(QWidget* p = nullptr);
		~RibbonTitle();

	public:

	signals:
		void actionDoubleClicked();
		void actionAppPrinter();
		void actionAppRedo();
		void actionAppUndo();

	protected:
		void mousePressEvent(QMouseEvent* event) override;
		void mouseReleaseEvent(QMouseEvent* event) override;
		void mouseMoveEvent(QMouseEvent* event) override;
		void mouseDoubleClickEvent(QMouseEvent* event) override;

	protected slots:
		void showMaximizedSlot();

	private:
		//bool is_maximized{ false };
		QPoint m_start_pos;
		QToolBar* m_app_tools;
		QHBoxLayout* m_layout;
		QMainWindow* m_p{};
		QToolButton* m_max;
		QToolButton* m_min;
		QToolButton* m_close;
		QLabel* m_title;
		//App
		QToolButton* m_app_logo;
		QToolButton* m_app_print;
		QToolButton* m_app_redo;
		QToolButton* m_app_undo;
		QAction* m_save;
		QAction* m_file_save;
		QAction* m_file_saveas;

	};

}

#endif